<?php

namespace Database\Seeders;

use App\Models\Permission;
use Illuminate\Database\Seeder;

class PermissionSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        $permissions = [
            // 管理员管理权限
            ['name' => '查看管理员列表', 'slug' => 'view_any_admin', 'description' => '查看管理员列表'],
            ['name' => '查看管理员', 'slug' => 'view_admin', 'description' => '查看管理员详情'],
            ['name' => '创建管理员', 'slug' => 'create_admin', 'description' => '创建管理员'],
            ['name' => '更新管理员', 'slug' => 'update_admin', 'description' => '更新管理员'],
            ['name' => '删除管理员', 'slug' => 'delete_admin', 'description' => '删除管理员'],

            // 角色管理权限
            ['name' => '查看角色列表', 'slug' => 'view_any_role', 'description' => '查看角色列表'],
            ['name' => '查看角色', 'slug' => 'view_role', 'description' => '查看角色详情'],
            ['name' => '创建角色', 'slug' => 'create_role', 'description' => '创建角色'],
            ['name' => '更新角色', 'slug' => 'update_role', 'description' => '更新角色'],
            ['name' => '删除角色', 'slug' => 'delete_role', 'description' => '删除角色'],

            // 权限管理权限
            ['name' => '查看权限列表', 'slug' => 'view_any_permission', 'description' => '查看权限列表'],
            ['name' => '查看权限', 'slug' => 'view_permission', 'description' => '查看权限详情'],
            ['name' => '创建权限', 'slug' => 'create_permission', 'description' => '创建权限'],
            ['name' => '更新权限', 'slug' => 'update_permission', 'description' => '更新权限'],
            ['name' => '删除权限', 'slug' => 'delete_permission', 'description' => '删除权限'],

            // 日志查看权限
            ['name' => '查看登录日志', 'slug' => 'view_any_login_log', 'description' => '查看登录日志'],
            ['name' => '查看操作日志', 'slug' => 'view_any_operation_log', 'description' => '查看操作日志'],

            // 管理权限（用于控制器权限检查）
            ['name' => '管理管理员', 'slug' => 'manage_admins', 'description' => '管理管理员权限'],
            ['name' => '管理角色', 'slug' => 'manage_roles', 'description' => '管理角色权限'],
            ['name' => '管理权限', 'slug' => 'manage_permissions', 'description' => '管理权限权限'],
        ];

        foreach ($permissions as $permission) {
            Permission::updateOrCreate(
                ['slug' => $permission['slug']],
                $permission
            );
        }
    }
}
